Avoid deleting sent messages on non room events#4960
Conversation
| private fun fixStuckLocalEcho(rooms: List<RoomEntity>) { | ||
| // when there are not room events, there is no need to delete SENT messages | ||
| // this might be useful for events like typing etc | ||
| if (rooms.isNullOrEmpty()) return |
There was a problem hiding this comment.
If there are only typing events, I am not sure that rooms will be empty.
Also we can have the case where we have new Events from other users, so we can still have a blink. @ganfra WDYT?
There was a problem hiding this comment.
I agree for the first part, I will update it a bit to check timeline events and not ephemeral etc. Now regarding the other we can fix this by removing them when we found an event from the same user! Do you think that will work?
There was a problem hiding this comment.
removing them when we found an event from the same user
Yes, maybe. Would be nice to have @ganfra feedback as well
There was a problem hiding this comment.
Also keep in mind, that on iOS they delete it much earlier (on SENT), so I think we improved the experience by delaying it until those constraints
There was a problem hiding this comment.
I had flickering issues on friday sending reply and quote events (not sure the type is relevant).
Also, maybe just cleaning SENT events after a paused sync (look at SyncThread) would be enough?
There was a problem hiding this comment.
I think, the flickering will mainly stop with that fix, while now we only delete local echos on specific cases. Maybe, pausing on syncThread will work, but not sure what will happened with that approach when there is no internet connection and the paused sync is called.
There was a problem hiding this comment.
I would suggest to merge it while it will for sure eliminate a lot of blinking, and if we observe more, we follow a different approach like the one you suggest
Matrix SDKIntegration Tests Results:
|
Following fix #4928 this is an improvement that prevents SENT messages to be deleted when there are no room events received and prevents blinking